package com.iceengine.audio.sound;

/**
 * The Sound interface is used to declare classes that play sounds.
 * @author penguin
 */
public interface Sound {
    /**
     * Set the listener.
     * @param Position Position of the listener.
     * @param Velocity Velocity of the listener.
     * @param Orientation Orientation of the listener. (first 3 elements are "at", second 3 are "up")
     */
    public void setListener(float[] Position, float[] Velocity, float[] Orientation);
    /**
     * Generates the sound-source location.
     * @param sourcePos Position of the sound source.
     * @param sourceVelocity Velocity of the sound source.
     */
    public void genSources(float[] sourcePos, float[] sourceVelocity);
    /**
     * Loads a sound at a given path.
     * @param Path Path where the sound is located.
     */
    public void loadSound(String Path);
    /**
     * Kills the sound-source.
     */
    public void killSource();
    /**
     * Initializes the Sound.
     */
    public void init();
    /**
     * Start playing the sound.
     */
    public void startPlay();
    /**
     * Stop playing the sound.
     */
    public void stopPlay();
    /**
     * Halt playing the sound.
     */
    public void haltPlay();
}
